Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188192 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/__locale b/include/__locale index 93147ec..8b0ae33 100644 --- a/include/__locale +++ b/include/__locale 
@@ -175,7 +175,7 @@  // template <class _CharT> class collate;    template <class _CharT> -class _LIBCPP_TYPE_VIS collate +class _LIBCPP_TYPE_VIS_ONLY collate  : public locale::facet  {  public: @@ -259,7 +259,7 @@    // template <class CharT> class collate_byname;   -template <class _CharT> class _LIBCPP_TYPE_VIS collate_byname; +template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY collate_byname;    template <>  class _LIBCPP_TYPE_VIS collate_byname<char> @@ -392,7 +392,7 @@  _LIBCPP_ALWAYS_INLINE ctype_base() {}  };   -template <class _CharT> class _LIBCPP_TYPE_VIS ctype; +template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY ctype;    template <>  class _LIBCPP_TYPE_VIS ctype<wchar_t> @@ -619,7 +619,7 @@    // template <class CharT> class ctype_byname;   -template <class _CharT> class _LIBCPP_TYPE_VIS ctype_byname; +template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY ctype_byname;    template <>  class _LIBCPP_TYPE_VIS ctype_byname<char> @@ -780,7 +780,7 @@    // template <class internT, class externT, class stateT> class codecvt;   -template <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TYPE_VIS codecvt; +template <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TYPE_VIS_ONLY codecvt;    // template <> class codecvt<char, char, mbstate_t>   @@ -1126,7 +1126,7 @@  // template <class _InternT, class _ExternT, class _StateT> class codecvt_byname    template <class _InternT, class _ExternT, class _StateT> -class _LIBCPP_TYPE_VIS codecvt_byname +class _LIBCPP_TYPE_VIS_ONLY codecvt_byname  : public codecvt<_InternT, _ExternT, _StateT>  {  public: @@ -1145,10 +1145,10 @@  {  }   -_LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char, char, mbstate_t>) -_LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<wchar_t, char, mbstate_t>) -_LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char16_t, char, mbstate_t>) -_LIBCPP_EXTERN_TEMPLATE(class codecvt_byname<char32_t, char, mbstate_t>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS codecvt_byname<char, char, mbstate_t>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS codecvt_byname<wchar_t, char, mbstate_t>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS codecvt_byname<char16_t, char, mbstate_t>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS codecvt_byname<char32_t, char, mbstate_t>)    _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*);   @@ -1334,7 +1334,7 @@    // template <class charT> class numpunct   -template <class _CharT> class _LIBCPP_TYPE_VIS numpunct; +template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY numpunct;    template <>  class _LIBCPP_TYPE_VIS numpunct<char> @@ -1400,7 +1400,7 @@    // template <class charT> class numpunct_byname   -template <class charT> class _LIBCPP_TYPE_VIS numpunct_byname; +template <class charT> class _LIBCPP_TYPE_VIS_ONLY numpunct_byname;    template <>  class _LIBCPP_TYPE_VIS numpunct_byname<char>